这段代码来源于libHaru库，libHaru是一个用于生成PDF文件的免费、跨平台、开源库。以下是代码中主要函数的功能解析：

1. **HPDF_Boolean_New**: 这个函数用于创建一个新的布尔对象。它接收一个内存管理器(`mmgr`)和一个布尔值(`value`)作为参数。在内部，它分配内存来存储`HPDF_Boolean_Rec`类型的结构体，初始化其头部，设置对象类型为`HPDF_OCLASS_BOOLEAN`，并将提供的布尔值赋给`value`字段。如果分配内存成功，返回创建的布尔对象，否则返回`NULL`。

2. **HPDF_Boolean_Write**: 这个函数用于将布尔对象的内容写入到PDF流(`stream`)中。它接受一个布尔对象(`obj`)和一个流对象作为参数。根据布尔对象中的`value`字段，如果值为真，向流中写入字符串"true"，否则写入字符串"false"。该函数返回写入状态，通常是一个表示操作是否成功的状态码。

通过这两个函数，libHaru库允许开发者在生成PDF文档时方便地创建和写入布尔值。这些布尔值可以被用于PDF文档的各种元数据或属性中，例如页面布局、注释属性等。

此外，libHaru库的其他部分提供了更多功能，如生成包含线条、文本、图像的PDF文件，压缩文档，嵌入字体和图像，创建加密的PDF文件，以及支持多种字符集等功能。虽然libHaru不支持读取或编辑现有的PDF文件，但它提供了一个强大且易于使用的接口来创建PDF文件，而无需深入理解PDF复杂的内部结构。由于libHaru是用ANSI C编写的，因此理论上支持大多数现代操作系统。然而，值得注意的是，该项目目前似乎正在寻找新的维护者，因为它已经有一段时间没有得到积极的维护和开发了。/*
 * << Haru Free PDF Library >> -- hpdf_boolean.c
 *
 * URL: http://libharu.org
 *
 * Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp>
 * Copyright (c) 2007-2009 Antony Dovgal <tony@daylessday.org>
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.
 * It is provided "as is" without express or implied warranty.
 *
 */

#include "hpdf_utils.h"
#include "hpdf_objects.h"

HPDF_Boolean
HPDF_Boolean_New  (HPDF_MMgr  mmgr,
                   HPDF_BOOL  value)
{
    HPDF_Boolean obj = HPDF_GetMem (mmgr, sizeof(HPDF_Boolean_Rec));

    if (obj) {
        HPDF_MemSet(&obj->header, 0, sizeof(HPDF_Obj_Header));
        obj->header.obj_class = HPDF_OCLASS_BOOLEAN;
        obj->value = value;
    }

    return obj;
}


HPDF_STATUS
HPDF_Boolean_Write  (HPDF_Boolean  obj,
                     HPDF_Stream   stream)
{
    HPDF_STATUS ret;

    if (obj->value)
        ret = HPDF_Stream_WriteStr (stream, "true");
    else
        ret = HPDF_Stream_WriteStr (stream, "false");

    return ret;
}

